package cn.b.sky.mes.mm.service;

import java.util.List;

import cn.b.sky.mes.mm.model.Distributionmode;
import cn.b.sky.mes.mm.model.condition.DistributionmodeCondition;


/**
 * 
 * <strong>Title : DistributionmodeService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.service<br></strong>
 * <strong>Description : </strong>物料配送形式增删改查<br> 
 * <strong>Create on : 2016-9-9 上午10:15:35<br></strong>
 * <p>
 * @author ZhiPeng.Tong<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface DistributionmodeService {
 
	/**
	 * 
	 * <strong>Title : selectdistributionmodeList<br></strong>
	 * <strong>Description : </strong>物料配送形式列表<br> 
	 * <strong>Create on : 2016-9-9 下午2:21:25<br></strong>
	 * <p>
	 * @param distributionmodeCondition
	 * @return
	 * List<Distributionmode>
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	List<Distributionmode> selectdistributionmodeList(DistributionmodeCondition distributionmodeCondition);
	/**
	 * 
	 * <strong>Title : getDistributionmodeCount<br></strong>
	 * <strong>Description : </strong>TODO@按条件查询获取物料配送类型总数@<br> 
	 * <strong>Create on : 2016-9-9 下午2:19:46<br></strong>
	 * <p>
	 * @param distributionmodeCondition
	 * @return
	 * int
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	 int getDistributionmodeCount(DistributionmodeCondition distributionmodeCondition);

	 /**
	  * 
	  * <strong>Title : getDistributionmode<br></strong>
	  * <strong>Description : </strong>根据id获取物料配送形式实体<br> 
	  * <strong>Create on : 2016-9-9 下午2:18:36<br></strong>
	  * <p>
	  * @param id
	  * @param siteCode
	  * @return
	  * Distributionmode
	  * @throws 
	  * @author ZhiPeng.Tong<br>
	  * @version <strong>v1.0.0</strong><br>
	  * <br>
	  * <strong>修改历史:</strong><br>
	  * 修改人 | 修改日期 | 修改描述<br>
	  * -------------------------------------------<br>
	  * <br>
	  * <br>
	  */
	Distributionmode getDistributionmode(String siteCode, String distributionModeCode);
	/**
	 * 
	 * <strong>Title : insertDistributionmode<br></strong>
	 * <strong>Description : </strong>新增物料配送形式<br> 
	 * <strong>Create on : 2016-9-9 下午2:39:57<br></strong>
	 * <p>
	 * @param distributionmode
	 * void
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	void insertDistributionmode(Distributionmode distributionmode);
	/**
	 * 
	 * <strong>Title : updateDistributionmode<br></strong>
	 * <strong>Description : </strong>修改物料配送形式<br> 
	 * <strong>Create on : 2016-9-9 下午2:40:55<br></strong>
	 * <p>
	 * @param distributionmode
	 * void
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	void updateDistributionmode(Distributionmode distributionmode);
	
	/**
	 * 
	 * <strong>Title : getDistributionModeExactCount<br></strong>
	 * <strong>Description : </strong>获取同一工厂下的物料配送形式<br> 
	 * <strong>Create on : 2016-9-9 下午4:02:54<br></strong>
	 * <p>
	 * @param distributionmodeCondition
	 * @return
	 * int
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	int getDistributionModeExactCount(
			DistributionmodeCondition distributionmodeCondition);
	/**
	 * 
	 * <strong>Title : deleteDistributionmode<br></strong>
	 * <strong>Description : </strong>物料配送形式删除<br> 
	 * <strong>Create on : 2016-9-10 上午9:06:38<br></strong>
	 * <p>
	 * @param distributionModeCode
	 * @param siteCode
	 * @return
	 * BatchJobReport
	 * @throws 
	 * @author ZhiPeng.Tong<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	String deleteDistributionmode(String siteCode,String code);
	
  /**
   * 
   * <strong>Title : selectAlldistributionmode<br></strong>
   * <strong>Description : </strong>查询所有配送形式<br> 
   * <strong>Create on : 2016年9月12日 上午9:55:27<br></strong>
   * <p>
   * @param isContainLock 是否包含锁定记录
   * @return
   * List<Distributionmode>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<Distributionmode> selectAlldistributionmode(boolean isContainLock);

}
